<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="root">
    姓: <input type="text" v-model="firstName"><br>
    名: <input type="text" v-model="lastName"><br>
    姓名: <input type="text" v-model="fullName">
  </div>

  <script src="../js/vue.js"></script>
  <script>
     const vm = new Vue({
      el: '#root',
      data: {
        firstName: 'A',
        lastName: 'B',
        // fullName: 'A-B'
      },


      // 计算属性
      computed: {
        // 计算属性方法什么时候调用: 初始显示/依赖数据发生变化
        // fullName3 () {
        //   console.log('computed fullName3')
        //   return this.firstName + '-' + this.lastName
        // }

        fullName: {
          // 初始显示执行一次 / 依赖数据变化后执行
          get () {
            console.log('get fullName')
            return this.firstName + '-' + this.lastName
          },
          // 监视fullName的变化, fullName的值发生改变后调用
          set (value) {
            console.log('set fullName', value)
            // 更新firstName和lastName
            const names = value.split('-')
            this.firstName = names[0]
            this.lastName = names[1]
          }
        }
      },
    })
  </script>
</body>
</html>